package com.duobaoyu.dby.supply.biz.client.resource.bean.bo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @author liyang
 * @version 1.0.0
 * @ClassName OrderRuleConfigBO
 * @createTime 13:00:00 2023/10/11
 */
@Data
public class OrderRuleConfigBO implements Serializable {
    private static final long serialVersionUID = 2050692378732633788L;

    /**
     * 渠道编码
     */
    @ApiModelProperty(value = "渠道编码")
    private String channelCode;
    /**
     * 配置类型 1->预估运费配置；2->售后配置；3->审核策略配置；4->订单规则配置
     * //@see ChannelSettingTypeEnum
     */
    @ApiModelProperty(value = "配置类型 1->预估运费配置；2->售后配置；3->审核策略配置；4->订单规则配置")
    private Integer configType;

    @ApiModelProperty(value = "订单规则")
    private OrderRule orderRule;

    @Data
    public static class OrderRule {
        /**
         * 商品拆单种类个数
         */
        @ApiModelProperty(value = "商品拆单种类个数")
        private Integer skuSplitVarietyCount;
        /**
         * 用户下单未付款，自动取消时间（单位：天）
         */
        @ApiModelProperty(value = "用户下单未付款，自动取消时间（单位：天）")
        private Integer orderCancelDay;
        /**
         * 用户下单未付款，自动取消时间（单位：小时）
         */
        @ApiModelProperty(value = "用户下单未付款，自动取消时间（单位：小时）")
        private Integer orderCancelHour;
        /**
         * 用户下单未付款，自动取消时间（单位：分钟）
         */
        @ApiModelProperty(value = "用户下单未付款，自动取消时间（单位：分钟）")
        private Integer orderCancelMinute;
        /**
         * 发货订单自动确认收货时间（单位：天）
         */
        @ApiModelProperty(value = "发货订单自动确认收货时间（单位：天）")
        private Integer shippingOrderConfirmTime;
        /**
         * 订单确认后，不能申请售后时间（单位：天）
         */
        @ApiModelProperty(value = "订单确认后，不能申请售后时间（单位：天）")
        private Integer orderConfirmNotAfterSaleTime;
        /**
         * 退换货/维修售后审核通过后，用户多长时间未寄回商品，自动取消售后（单位：天）
         */
        @ApiModelProperty(value = "退换货/维修售后审核通过后，用户多长时间未寄回商品，自动取消售后（单位：天）")
        private Integer returnProductRefundCancelTime;
        /**
         * 售后完成，自动确认售后完成时间（单位： 天）
         */
        @ApiModelProperty(value = "售后完成，自动确认售后完成时间（单位： 天）")
        private Integer autoAfteSaleCompleteTime;
    }
}
